home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-12 | 7.0 KB | 148 lines | [TEXT/CWIE] |
- NetSprocket 1.0.1
- Release Notes
- ---------------
-
- Please report all bugs to sprockets@adr.apple.com!
-
-
- What's New?
- -----------
-
- NetSprocket 1.0.1 is a bug-fix for NetSprocket 1.0, and contains no new
- features. Two important bugs were fixed in this version:
-
- 1. The Human Interface functions caused PPP clients that were configured
- to automatically dial in to their ISP when an application requested a
- connection would dial in when the dialogs appeared, rather than when the
- OK button was hit. This was a side-effect of NetSprocket's attempt to
- determine whether or not the TCP/IP setup was valid. This version now
- assumes that if TCP/IP is present, it is configured correctly. This
- assumption has two effects. First, PPP will only dial in when the OK
- button is hit. Second, the user may try to host or join a game on TCP
- when in fact their TCP/IP configuration is invalid, leading to a lengthy
- pause before control is returned to the application.
-
- 2. There was a bug in the endpoint code that could cause NetSprocket to
- become confused about where one Reliable message ended, and another began.
- This would happen if the game was rapidly (30x/second) sending Registered
- messages, interspersed with an occasional large (1k+) message. This has
- been fixed.
-
- The bug described below about AppleTalk crashing under certain conditions
- has been isolated as an OpenTransport problem. This bug has been fixed
- in OT 1.1.1.
-
-
- Release Components
- ------------------
-
- NetSprocket Release Notes - this file
- NetSprocket.h - the header file to compile with.
- NetSprocketLib - release version of the library
- NetSprocketDebugLib - debugging version of the library
- NetSprocketTest - test program
- NetSprocketTest.ยต - Code Warrior 9 project to build test
- NetSprocketTest Sources - sources for test program
-
- Note: NetSprocketTest uses Metrowerks' PowerPlant, and requires CW8 or later
- to build.
-
- WARNING: don't place both the debugging and non-debugging versions of the
- library in the search path or you will not be sure which version you will be
- using.
-
- Dependencies
- ------------
-
- NetSprocket requires OpenTransport version 1.1 or later. 1.1 is the version
- that is installed by the System 7.5 Update 2.0, or the System 7.5.3 installer.
-
- NetSprocket requires the latest Universal Headers -- version 2.1.2 or later.
- You can find them on E.T.O. #20, the MacOS SDK CD-ROMs, Apple's web-site, or
- a number of other locations.
-
- Compatability with Prereleases
- ------------------------------
-
- NetSprocket 1.0.1 is fully compatible with NetSprocket 1.0
-
- Getting the Most out of NetSprocket
- -----------------------------------
-
- To get the optimal performance out of NetSprocket, design your game to send
- "Normal" messages that contain less than 550 bytes of data. This allows
- NetSprocket to use datagram-level delivery for both TCP/IP and AppleTalk.
- Using "Registered" messages can cause a 2-50% network performance degradation,
- depending on a number of factors, including network bandwith, utilization,
- message size, and send frequency.
-
- All messages, except ones sent from a player to himself, are sent through the
- host. Therefore, the host is one "hop" from any other player, and two non-host
- players are always two "hops" apart.
-
- Sending a message to a group is not as efficient as sending to everyone in the
- game, or to a single player. It is usually more efficient than sending to each
- individual in the group separately.
-
- You CAN NOT send messages at VBL (or any other interrupt) time with NetSprocket
- 1.0. You should schedule a deferred system task, or just wait until system
- task time before sending. You CAN however, call NSpMessage_Get at interrupt
- time. We generally recommend against all interrupt-time calls to the Game
- Sprockets, as doing so will pretty much guarantee that your code will not run
- under MacOS 8.
-
- The number of players in a NetSprocket game is limited only by memory (and
- networking resources, such as available ports). If you exepect to handle lots
- of players (14+), you need to make sure you give NetSprocket sufficient memory
- and queue elements when you initialize it. If you get send failed or memory
- error message from NetSprocket, try giving it more memory.
-
- If you have a situation where your game has players whose network throughput is
- greatly disparate, you need to make sure you don't choke the slow person. For
- example, if you have 4 players on AppleTalk over Ethernet, and you have a fifth
- player join the game over a 28.8k PPP connection, and your fast machines are
- sending messages 30 times a second each, you're going to quickly gag the
- newcomer with too much data, and the host will simply not be able to deliver
- messages as quickly as you generate them. The newcomer will be disconnected
- after approximately 20 messages have been queued up, waiting for flow control
- to lift before delivering them. You can avoid this type of problem by
- throttling down your game's send rate to allow the newcomer to participate.
- You can also avoid it by sending "Junk" messages instead of Normal.
-
- NetSprocket 1.0 does not implement Round-Trip-Time or throughput functions,
- though the next release will. You can implement your own RTT and thruput
- functions on top of the NetSprocket API yourself, though.
-
- Known Bugs
- ----------
-
- There is a bug that causes games playing over AppleTalk to crash in the
- following situation: If any client (joiner) in the game crashes, and anyone
- else in the game continues to send Registered messages to that client (since
- the other players aren't notified that the player is gone until a timeout
- period is reached), then the host machine may crash when the application quits.
- In network-ease, the host will start getting flow control errors when the
- client crashes (or reboots or somehow leaves the game in a disorderly fashion).
- In response, the host queues up up to 20 messages, then generates a "player
- left" message. When the OpenTransport endpoint is closed (by quitting the
- game), the outstanding T_GODATA notifications have not fired for their
- corresponding flow control errors. This seems to cause OT to go into an
- infinite loop, waiting for flow to lift so it can notify the client. The user
- will experience a freeze, but the mouse will still move. They can force quit,
- but generally the state of their system is too hosed to do anything useful.
- Needless to say, we're working on the problem. It doesn't happen with TCP/IP,
- and it doesn't happen if you're using Normal or Junk messages smaller than 550
- bytes.
-
- If you are a joiner in a game, then leave in some disorderly fashion, then join
- another game (or host one yourself), it is possible that OpenTransport will
- assign you the same port you were using before for you previous game. If this
- happens, you may receive spurious messages from the other game, if it is still
- in progress, and if the timeout period for disconnecting you (about 2 minutes)
- has not elapsed. This is not a bug per-se, but should be handled better by
- NetSprocket.
-
- Host renegotiation isn't working properly. We're working on it for the next
- release.
-
-